// 部门列表转为树形结构思路:
// 1.如果pid为空，说明当前部门是一级部门
// 2.如果pid不为空，判断谁的id与当前部门的pid全等，如果全等说明当前id的这个部门是pid部门的爹，要给爹这个添加孩子注意:对于树形结构的处理、常用手段就是函数的递归
// 列表转树
// list:待转换的列表
// pid:查找几级部门
export const list2Tree = (list, pid) => {
  // 存储结果的树形数组
  const arr = []
  // 遍历list数组
  list.forEach((item) => {
    // 查找一级部门
    if (item.pid === pid) {
      // 查找二级甚至是多级部门
      // 函数递归，查找item的子部门
      const children = list2Tree(list, item.id)
      // 如果children不为空，说明item有子部门
      if (children.length) {
        // 需要给item添加children属性
        item.children = children
      }
      // 添加一级部门到结果树形数组中
      arr.push(item)
    }
  })
  // 返回结果的树形数组
  return arr
}

export const treetolist = (arr) => {
  const list = []
  arr.forEach((item) => {
    if (item.points) {
      const children = treetolist(item.points)
      list.push(item, ...children)
      delete item.points
    } else if (item.childs) {
      const children = treetolist(item.childs)
      list.push(item, ...children)
      delete item.childs
    } else {
      list.push(item)
    }
  })
  return list
}
